// SPDX-License-Identifier: GPL-3.0-or-later
// Copyright © 2018-2019 Ariadne Devos
/* shttpd - heterogeneous workers */

#ifndef _sHT_TASKSET_H
#define _sHT_TASKSET_H 1

#include <sHT/scheduling.h>

struct sHT_task;
struct epoll_event;

/** A queue of tasks to do, to which tasks are added if they can do IO
  and belong to this set.

  This object doesn't do any task allocation by itself.*/
struct sHT_taskset
{
	sHT_watch_set watches;
	unsigned int capacity;
	struct sHT_task_queue queue;
	/* TODO: multiple task sets can share a single list
	   TODO: this is rather something for <sHT/scheduling.h> */
	struct epoll_event *epoll_events;
};

#endif
